import cv2
import os

# 视频文件路径
video_path = 'D:\BaiduNetdiskDownload\M4x100IMF\M4x100IMF-2.mp4'  # 替换为你的视频文件路径
# 输出文件夹路径
output_folder = 'D:\BaiduNetdiskDownload\M4x100IMF\jpg1'  # 替换为你想要保存帧的文件夹路径
# 每隔几帧输出图片
frame_skip = 25  # 例如，设置为5表示每5帧保存一张图片

# 确保输出文件夹存在，如果不存在则创建
if not os.path.exists(output_folder):
    os.makedirs(output_folder)

# 视频捕获对象
cap = cv2.VideoCapture(video_path)

# 读取视频帧并保存
frame_count = 0  # 用于计数的变量
while True:
    # 读取下一帧
    ret, frame = cap.read()

    # 如果读取成功，则继续处理
    if not ret:
        break  # 视频结束，退出循环

    # 每跳过指定帧数后，保存一帧
    frame_count += 1
    if frame_count % frame_skip == 0:
        # 构建输出文件名
        frame_filename = os.path.join(output_folder, f'frame_{frame_count}.jpg')

        # 保存帧为jpg
        cv2.imwrite(frame_filename, frame)

# 释放视频捕获对象
cap.release()

print(f"每隔 {frame_skip} 帧的视频帧已成功保存到：{output_folder}")